#ifndef _Stack_h
#define _Stack_h

#define ElementType int

struct Node;
typedef struct Node* Stack;
typedef struct Node* pNode;

int IsEmpty(Stack S);
Stack CreateStack();
void DisposeStack(Stack S);
void MakeEmpty(Stack S);

void Push(ElementType x, Stack S);
ElementType Pop(Stack S);
ElementType Top(Stack S);

void TestStack2();
#endif